1. Field of the Invention
This invention relates generally to storage devices used in computer systems and, more particularly, to a configurable storage array that allows a plurality of storage devices to be grouped into various array configurations on isolated bus segments.
2. Description of the Related Art
Most types of electronic and computing systems comprise many different devices that electronically communicate with each other over one or more buses. Exemplary types of devices include, but are not limited to, processors (e.g., microprocessors, digital signal processors, and micro-controllers), memory devices (e.g., hard disk drives, floppy disk drives, and optical disk drives), and peripheral devices (e.g., keyboards, monitors, mice). When electrically connected to a bus, these types of devices, as well as others not listed, are all sometimes generically referred to as “bus devices.”
A bus, in the conceptually simplest form, is a collection of wires over which the various electronic devices in a piece of electronic or computing equipment transmit information. However, any given bus may be implemented in many different ways. A bus may be implemented so as to transmit only data, or only commands, or both data and commands, for instance. But many more permutations are available based on other operating characteristics, such as bus width and bus speed. These two characteristics are exemplary only, and many other characteristics not listed are considered in designing any particular bus implementation. Occasionally, an industry group will formalize a set of operating characteristics into a “standard.” The standard will set flexible definitions for the standard that permit some variation in design but generally ensure compatibility for designs meeting the standard.
One such bus standard is the Small Computer System Interface standard (“SCSI”, pronounced “scuzzy”). There are actually many different kinds of SCSI implementations, each defined by a different SCSI standard. More particularly, at least the following varieties of SCSI are currently implemented: SCSI-1, SCSI-2, Wide SCSI, Fast SCSI, Fast Wide SCSI, Ultra SCSI, SCSI-3, Ultra Wide SCSI, Ultra2 SCSI, Fibre Channel, and Wide Ultra2 SCSI as well as some buses utilizing optical interconnections. The various SCSI standards are not necessarily compatible with each other, although the basic SCSI standards (SCSI-1, SCSI-2, and SCSI-3) are basically functionally compatible.
Generally, SCSI began as a parallel interface standard used by Apple Macintosh computers, PCs, and many UNIX systems for attaching peripheral devices to computers. The original intent was to develop an interface providing faster data transmission rates (up to 80 megabytes per second) than the standard serial and parallel ports found on computers of the time. However, the SCSI standards proved to be enormously more useful than this original intent. One distinct advantage to the SCSI interface was that it permitted a user to attach many devices to a single SCSI port in a daisy chain fashion. At the time, conventional serial and parallel ports generally were limited to one device per port.
The versatility inherent in the SCSI standards has allowed the interface to be adapted to large scale computing environments, including networks, both local area networks (“LANs”) and wide area networks (“WANs”). One large scale computing application is the implementation of storage arrays that use a plurality of storage devices, such as disk drives or tape drives, that are grouped into arrays to provide centralized storage and backup capabilities. Some disk arrays are configured for bulk storage, while other configurations, such as Redundant Arrays of Inexpensive Disks (RAID) and Redundant Arrays of Inexpensive Tapes (RAIT), provide data redundancy to allow recovery in the event of a storage device failure. The SCSI configuration allows multiple devices in the array to be simultaneously accessed, thus allowing increased transfer rates.
Typically, the setup of a SCSI system is complicated and requires a high level of expertise on the part of the user. For example, a SCSI bus arrangement is typically arranged in a daisy chain fashion, where one device interconnects with the adjacent devices on the bus. Both ends of the bus must be terminated (i.e., bus lines are pulled high) to allow for proper transmission line characteristics and minimize reflections at the ends of the bus. Improper termination, such as failure to terminate or terminating at places other than the ends of the bus, may reduce the robustness of the bus and even prevent its operation entirely.
To address the difficulties associated with configuring SCSI storage arrays, computer system vendors typically provide external storage arrays with fixed configurations. Additional unused slots may be provided for adding storage capacity. The bus configuration, however, is fixed. If a user has several servers and wishes to provide separate storage arrays for each, separate external storage arrays must be purchased and installed. Some storage arrays may be pre-configured to provide two or more independent banks to allow separate arrays in a common housing. However, these configurations are still static. One application might require a relatively small storage array while another might require a larger array. A user may either need to purchase either a multi-array unit with a large capacity or two separate units with capacity appropriate for the application. Either solution may not be cost-effective.
One current trend in the storage device area is to provide hot-plug capabilities for the devices. A hot-plug drive can be replaced without powering down the system. Currently, the SCSI standards define a hot-plug interface port standard and an accompanying single connector attachment (SCA) connector for coupling hot-plug devices to common bus. If a drive fails, it may be removed and replaced. If a RAID data storage arrangement is used the data on the original drive may also be reconstructed. An SCA connector combines the bus, power, and SCSI ID connectors into a single attachment. Mechanical features of the SCA connector control the removal and application of power to the hot-plug device upon disengagement and engagement of the connector.
While SCA connectors have been used to standardize hot-plug hard disk drives, tape drives have not been provided with a similar standardization. Current hot-plug tape drives have been developed with specialized connectors that are compatible only with specific products. In one such implementation, the power connection is provided with hot-plug capability while the other connections remain unchanged. Such devices cannot be interconnected on a common bus with other hot-plug devices due to signal integrity and bus citizenship problems resulting from the cable arrangement. For example, the additional cabling required to connect the standard connectors to the bus adds undesirable capacitance and has the potential to disrupt the transmission line characteristics of the SCSI bus, rendering it unreliable or inoperative.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.